package com.yuw.dz.oop2;

public class Student {
    //////////////////////////////////封装共同的属性//////////////////////////////////////
    // 共同的属性---成员变量（定义在类中的变量）

    // 学生姓名
    private String stuName; // 成员变量
    // 学生年龄
    private int stuAge;
    // 学号
    private String stuNo;
    // 学校
    private String stuSchool;

    /////////////////////////构造方法//////////////////////////

    // 自定义的构造方法
    public Student(String stuName) {
        // 使用this(实参列表) 的形式调用其他的构造方法
        this();
        this.stuName = stuName; //this关键字可以引出被局部变量覆盖的同名的成员变量；
        System.out.println("执行了带一个参数的自定义构造方法");
    }

    // 默认的构造方法的形式：有了自定义的构造方法，则默认的构造方法需要显式写出来
    public Student() {
        System.out.println("执行了默认的构造方法");
    }

    //////////////////////////////////封装共同的行为/////////////////////////////////////

    // 共同的行为--定义在类中的方法（函数）

    /**
     * 学习行为
     */
    public void doStuding() {
        System.out.println(this.stuName + " is studing...");
    }

    /**
     * 吃早餐行为
     *
     * @param foodName 早餐名
     * @param money    花费的钱
     */
    public void doEating(String foodName, double money) {
        System.out.println(this.stuName + " is eating " + foodName + " with ￥" + money);
    }

    /**
     * 考试行为
     *
     * @param examName 考试科目(形参)
     */
    public double doExaming(String examName) {
        System.out.println(this.stuName + " is examing " + examName);
        double score = 90.5;
        // 返回结果
        return score;
    }

    //////////////////getter/setter方法接口///////////////////////

    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    public int getStuAge() {
        return stuAge;
    }

    public void setStuAge(int stuAge) {
        this.stuAge = stuAge;
    }

    public String getStuNo() {
        return stuNo;
    }

    public void setStuNo(String stuNo) {
        this.stuNo = stuNo;
    }

    public String getStuSchool() {
        return stuSchool;
    }

    public void setStuSchool(String stuSchool) {
        this.stuSchool = stuSchool;
    }
}
